Tag Library Descriptor (TLD) একটি XML ফাইল যা একটি কাস্টম ট্যাগ লাইব্রেরি (Custom Tag Library) সংজ্ঞায়িত করে। এটি কাস্টম ট্যাগের বৈশিষ্ট্য, তাদের ব্যবহারের পদ্ধতি এবং তাদের সাথে সম্পর্কিত ক্লাস বা রিসোর্সের বিবরণ প্রদান করে। যখন আপনি জেএসপি (JSP) তে কাস্টম ট্যাগ ব্যবহার করতে চান, তখন আপনাকে একটি TLD ফাইল তৈরি করতে হবে যাতে ট্যাগগুলির বিবরণ এবং তাদের আচরণ সংজ্ঞায়িত করা হয়।
TLD ফাইলের গঠন
TLD ফাইলটি সাধারণত WEB-INF ফোল্ডারের মধ্যে রাখা হয় এবং এটি একটি XML ফাইল হয় যা কাস্টম ট্যাগের ডেফিনিশন ধারণ করে। TLD ফাইলটি দুইটি প্রধান অংশে বিভক্ত: taglib এবং tag। taglib ট্যাগ লাইব্রেরির বিবরণ ধারণ করে, এবং tag ট্যাগের বিবরণ দেয়।
TLD ফাইল তৈরি করার প্রক্রিয়া
১. TLD ফাইলের গঠন
TLD ফাইলের মৌলিক গঠন নিচে দেখানো হয়েছে:
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>My Custom Tag Library</description>
<display-name>Custom Tag Library</display-name>
<tlib-version>1.0</tlib-version>
<short-name>mytags</short-name>
<uri>/WEB-INF/tlds/mytags.tld</uri>
<tag>
<name>greet</name>
<tag-class>com.example.GreetTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
এখানে:
taglib: এটি ট্যাগ লাইব্রেরির মেটাডেটা ধারণ করে, যেমন এর বিবরণ, সংস্করণ এবং URI।description: লাইব্রেরির সাধারণ বর্ণনা।display-name: লাইব্রেরির প্রদর্শন নাম।tlib-version: ট্যাগ লাইব্রেরির সংস্করণ।short-name: ট্যাগ লাইব্রেরির সংক্ষিপ্ত নাম যা পরে জেএসপি ফাইলে ব্যবহৃত হবে।uri: লাইব্রেরির URI যা ট্যাগ লাইব্রেরির অবস্থান নির্দেশ করে।tag: এটি একটি কাস্টম ট্যাগের সংজ্ঞা। এটি একটিname,tag-class,body-content, এবং প্রয়োজন হলেattributeধারণ করে।
২. ট্যাগ ক্লাস তৈরি করা
এখন আপনাকে একটি ট্যাগ ক্লাস তৈরি করতে হবে যা জেএসপি ট্যাগের লজিক পরিচালনা করবে। নিচে একটি উদাহরণ দেওয়া হয়েছে:
package com.example;
import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.JspException;
import java.io.IOException;
public class GreetTag extends TagSupport {
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public int doStartTag() throws JspException {
try {
if (name != null) {
pageContext.getOut().write("হ্যালো, " + name + "!");
} else {
pageContext.getOut().write("হ্যালো, বিশ্ব!");
}
} catch (IOException e) {
throw new JspException("Error in GreetTag", e);
}
return SKIP_BODY; // Means no body content will be evaluated
}
}
এখানে:
TagSupportক্লাসটি কাস্টম ট্যাগ তৈরি করার জন্য ব্যবহৃত হয়।doStartTag()মেথডটি ট্যাগটি রান হওয়ার সময় কল করা হয়।setName()মেথডটিnameঅ্যাট্রিবিউট সেট করার জন্য ব্যবহৃত হয়।
৩. JSP ফাইলে ট্যাগ ব্যবহার করা
এখন আপনার তৈরি করা কাস্টম ট্যাগ লাইব্রেরি ব্যবহার করতে হবে একটি JSP পেজে। এর জন্য আপনাকে TLD ফাইলটি রেফারেন্স করতে হবে এবং কাস্টম ট্যাগ ব্যবহার করতে হবে।
<%@ taglib uri="/WEB-INF/tlds/mytags.tld" prefix="my" %>
<html>
<body>
<my:greet name="জন"></my:greet>
</body>
</html>
এখানে:
<%@ taglib %>ডিরেকটিভটি TLD ফাইলটি রেফারেন্স করতে ব্যবহৃত হয়।prefix="my"এটিকে ট্যাগের আগে দেওয়া হয় এবং পরে ট্যাগের নামের সাথে ব্যবহৃত হয় (যেমনmy:greet)।
৪. TLD ফাইল এবং ট্যাগ ক্লাসের সংস্থান
TLD ফাইলটি আপনার ওয়েব অ্যাপ্লিকেশনের WEB-INF/tlds/ ফোল্ডারে রাখতে হবে এবং আপনার ট্যাগ ক্লাসটি WEB-INF/classes/ ফোল্ডারে রাখতে হবে। উদাহরণস্বরূপ:
/WEB-INF/
/tlds/
mytags.tld
/classes/
com/
example/
GreetTag.class
সারাংশ
TLD ফাইলগুলি কাস্টম ট্যাগের জন্য গুরুত্বপূর্ণ কারণ এগুলি ট্যাগের বৈশিষ্ট্য এবং তাদের ব্যবহারের নিয়মাবলী সংজ্ঞায়িত করে। JSP (Java Server Pages) তে কাস্টম ট্যাগ ব্যবহার করার জন্য TLD ফাইল তৈরি করা এবং সঠিকভাবে কনফিগার করা প্রয়োজন। এর মাধ্যমে আপনি নিজস্ব ট্যাগ তৈরি করে, আপনার অ্যাপ্লিকেশনে কার্যকরী ও পুনরায় ব্যবহারযোগ্য কম্পোনেন্ট অন্তর্ভুক্ত করতে পারবেন।
Read more